package com.sisgesbyte.services.localizacion;

import java.util.ArrayList;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.inject.Inject;
import com.sisgesbyte.common.ConstantesInternasSistema;
import com.sisgesbyte.common.Validaciones;
import com.sisgesbyte.dao.beanDao.FiltrosSQLBean;
import com.sisgesbyte.dao.localizacion.LocalizacionDistritoDao;
import com.sisgesbyte.data.entity.localizacion.DistritoEntity;
import com.sisgesbyte.services.localizacion.bean.DistritoBean;
import com.sisgesbyte.services.localizacion.bean.ListaDistritoResponse;

@Stateless
public class MantenimientoDistritoImpl implements MantenimientoDistrito {

	@EJB
	private LocalizacionDistritoDao localizacionDistritoDao;
	@Inject
	private Validaciones validaciones;
	
	@Override
	public ListaDistritoResponse listarDistritos(String codTransaccion, FiltrosSQLBean cadenaFiltros) {
		String mensajeTransaccionMetodo = "[listarDistritos idTx=" + codTransaccion + "] - ";
		ListaDistritoResponse response = new ListaDistritoResponse();
		List<DistritoEntity> reqDao = null;
		
		try{
			response.setIdTransaccion(codTransaccion);
			try{
				reqDao = localizacionDistritoDao.listarDistritos(cadenaFiltros);
			}catch(Exception e){
				System.out.println(mensajeTransaccionMetodo + "Hubo un error al listar de  BD " + e);
				response.setCodigoRespuesta(ConstantesInternasSistema.DIVISION_LISTAR_COD_IDT64);
				response.setMensajeRespuesta(ConstantesInternasSistema.DIVISION_LISTAR_MSJ_IDT64);
				return response;
			}
			
			if(reqDao.size()> 0){
				List<DistritoBean> listDistrito = new ArrayList<DistritoBean>();
				for(DistritoEntity lista :reqDao){
					DistritoBean bean = new DistritoBean();
						bean.setActive(lista.getActive());
						bean.setCiudad(validaciones.validarCamposString(lista.getCiudad()));
						bean.setCiudadId(lista.getCiudad_id());
						bean.setCodMap(lista.getCod_map());
						bean.setDistrito(validaciones.validarCamposString(lista.getDistrito()));
						bean.setId(lista.getId());
						bean.setLatMap(lista.getLat_map());
						bean.setLngMap(lista.getLng_map());
						bean.setZoomDefault(lista.getZoom_default());
					listDistrito.add(bean);
				}
				response.setListaDistritos(listDistrito);
				response.setCodigoRespuesta(ConstantesInternasSistema.CODIGO_EXITO);
				response.setMensajeRespuesta(ConstantesInternasSistema.MENSAJE_EXITO);
			}else{
				response.setCodigoRespuesta(ConstantesInternasSistema.DIVISION_LISTAR_COD_IDF63);
				response.setMensajeRespuesta(ConstantesInternasSistema.DIVISION_LISTAR_MSJ_IDF63);
			}
		}catch(Exception e){
			System.out.println(mensajeTransaccionMetodo + "Hubo un error en el proceso " + e);
			response.setCodigoRespuesta(ConstantesInternasSistema.DIVISION_LISTAR_COD_IDT64);
			response.setMensajeRespuesta(ConstantesInternasSistema.DIVISION_LISTAR_MSJ_IDT64);
			return response;
		}
		return response;
	}
	
	

}
